#define button1 D0 #define button2 D1 #define button3 D2 #define button4 D3 #define led D10 #define input1 D7 #define input2 D8 int mode = 0; bool state1; bool state2; bool state3; bool state4; bool input1_state ; bool input2_state ; void setup() { pinMode(led,OUTPUT); pinMode(button1,INPUT_PULLDOWN); pinMode(button2,INPUT_PULLDOWN); pinMode(button3,INPUT_PULLDOWN); pinMode(button4,INPUT_PULLDOWN); pinMode(input1,INPUT_PULLDOWN); pinMode(input2,INPUT_PULLDOWN); Serial.begin(9600); } void loop() { state1 = digitalRead(button1); state2 = digitalRead(button2); state3 = digitalRead(button3); state4 = digitalRead(button4); input1_state = digitalRead(input1); input2_state = digitalRead(input2); if(state1 == HIGH) { mode = 1; Serial.println("mode1"); } else if ( state3 == HIGH) { mode = 3; Serial.println("mode3"); } else if ( state2 == HIGH) { Serial.println("mode2"); mode = 2; } else if ( state4 == HIGH) { Serial.println("mode4"); mode = 4; } Serial.println(mode); switch(mode) { case(1): digitalWrite(led,(input1_state && input2_state)); Serial.println("and"); break; case(2): digitalWrite(led,(input1_state || input2_state)); Serial.println("or"); break; case(3): digitalWrite(led,!(input1_state && input2_state)); Serial.println("nand"); break; case(4): digitalWrite(led,!(input1_state || input2_state)); Serial.println("nor"); break; default : Serial.println("press input buttons"); break; Serial.println(mode); } }